package srcTest;

import static org.junit.Assert.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.ejb.embeddable.EJBContainer;

import junit.framework.Assert;

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

import com.sumset.daos.DenunciaDao;
import com.sumset.daos.EstadoDenunciaDao;
import com.sumset.daos.PostDao;
import com.sumset.daos.TipoDenunciaDao;
import com.sumset.daos.UsuarioDao;
import com.sumset.entidades.EstadoDenuncia;

public class EstadoDenunciaTest {

	private static EJBContainer contenedor;
	private static EstadoDenunciaDao edd;

	
	
	@BeforeClass
	public static void primerMetodo() throws Exception
	{
		
		Map<String, String> properties = new HashMap<String, String>();
		properties.put(EJBContainer.APP_NAME, "pratica_26");
		contenedor = EJBContainer.createEJBContainer(properties);
	    edd=(EstadoDenunciaDao) contenedor.getContext().lookup("java:global/pratica_26/estadoDenunciaDao");
	  
	    EstadoDenuncia ed=new EstadoDenuncia();
	    ed.setId(Long.valueOf(0));
	    ed.setDescripcion("tales");
	    
	    edd.insert(ed);
	    
	}
	
	
	@Test
	public void testInsert() throws Exception 
	{
		
		EstadoDenuncia ed=new EstadoDenuncia();
	    ed.setId(Long.valueOf(-1));
	    ed.setDescripcion("tales");    
	    edd.insert(ed);
	    
	    EstadoDenuncia eid=edd.buscar(Long.valueOf(-1)); //estado denuncia insertado anteriormente traido desde la BD
	    Assert.assertNotNull(eid);
	    
	}

	
	@Test
	public void testUpdate() throws Exception 
	{
		
		EstadoDenuncia edi=edd.buscar(Long.valueOf(0)); //estado denuncia insertado en el primer metodo traido desde la BD
		edi.setDescripcion("retales");
		
		EstadoDenuncia eda=edd.buscar(Long.valueOf(0)); //estado denuncia actualizada traido desde la BD
		Assert.assertEquals("retales", eda.getDescripcion());
	}

	@Test
	public void testDelete() throws Exception
	{
		EstadoDenuncia edi=edd.buscar(Long.valueOf(-1)); //estado denuncia insertado en el metodo de probar insert traido desde la BD
		edd.delete(edi);
		EstadoDenuncia ede=edd.buscar(Long.valueOf(-1)); //estado denuncia eliminado traido desde la BD
		Assert.assertNull(ede);
	}

	@Test
	public void testBuscar() throws Exception 
	{
		EstadoDenuncia edb=edd.buscar(Long.valueOf(0)); //estado denuncia insertado en el primer metodo traido desde la BD
	    Assert.assertNotNull(edb);
	}

	@Test
	public void testListar() throws Exception 
	{
		EstadoDenuncia eid=edd.buscar(Long.valueOf(0)); //estado denuncia insertado en el primer metodo traido desde la BD
		List<EstadoDenuncia> lista=edd.listar();
		Assert.assertTrue(lista.contains(eid));
	}
	
	@AfterClass
	public static void ultimoMetodo() throws Exception
	{
		EstadoDenuncia edi=edd.buscar(Long.valueOf(0)); //estado denuncia insertado en el primer metodo traido desde la BD
		edd.delete(edi);
	}

}
